<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <title>不定积分</title>
    <meta charset="utf-8" />
    <link rel="stylesheet" type="text/css" href="../../css/note.css" />
</head>
<body>

<p class="example">
    <b>倒代换</b>
    令 `t = 1/x`. 于是
    <span class="formula">
        `x t = 1` `rArr x dt + t dx = 0` `rArr dt/t = -dx/x`.
    </span>
</p>

<ol class="example">
	<b>Euler 代换</b>
	设 `R(x, y)` 是有理函数, 对于 `R(x, sqrt(a x^2+b x+c))` 的不定积分:
	<li><b>Euler 第一代换</b>若 `a gt 0`, 令 `sqrt(a x^2+b x+c) = t + sqrt
		a x` 或 `t - sqrt a x`;
	</li>
	<li><b>Euler 第二代换</b>若 `c gt 0`, 令 `sqrt(a x^2+b x+c)
		= x t + sqrt c` 或 `x t - sqrt c`;
	</li>
	<li><b>Euler 第三代换</b>若 `Delta = b^2-4a c gt 0`, 设 `a x^2+b x+c`
		的两实根为 `alpha, beta`, 作换元 `sqrt(a x^2+b x+c) = t(x-alpha)`
		或 `t(x-beta)`;
	</li>
	就可将被积函数有理化.
</ol>

<h2>无理函数积分</h2>

<p class="example">`I = int sqrt(a^2 - x^2) dx`.</p>

<p class="solution">
	一种方法是是作三角代换 `x = a sin t`.
	也可以将原式拆开, 第一项做分子有理化, 第二项分部积分:
	<span class="formula">
		`I = 1/2 int sqrt(a^2 - x^2) dx
			+ 1/2 int sqrt(a^2 - x^2) dx`
		`= ( 1/2 int (a^2 text(d)x) / sqrt(a^2-x^2)
			- 1/2 int (x^2 text(d)x) / sqrt(a^2-x^2) )`
			`+ ( 1/2 x sqrt(a^2 - x^2)
			+ 1/2 int (x^2 text(d)x)/sqrt(a^2 - x^2) )`
		`= a^2/2 arcsin{:x/a:} + x/2 sqrt(a^2 - x^2) + C`.
	</span>
	这个积分的几何意义是, “从四分之一圆中减去半个弓形,
	余下的面积等于一个扇形的面积加一个直角三角形的面积”.  类似地可以算出
	<span class="formula">
		` int sqrt(a^2+x^2) dx
		= a^2/2 ln (x + sqrt(a^2+x^2)) + x/2 sqrt(a^2+x^2) + C`.
	</span>
</p>

<p class="example">`int sqrt(1+x^4) / (x^3) dx`.</p>

<p class="solution">
	依然是分子有理化.
	令 `t = x^2`, 则 `dt = 2x dx`.
	原式等于
	<span class="formula">
		` 1/2 int sqrt(1 + t^2)/t^2 dt
		= 1/2 int 1/(t^2 sqrt(1+t^2)) dt
		  + 1/2 int 1/sqrt(1+t^2) dt`.
	</span>
	令 `t = sinh u`, 则 `dt = cosh u "d"u`,
	从而第一项等于
	<span class="formula">
		` 1/2 int ("d"u)/(sinh^2 u)
		= - cosh u/(2 sinh u) + C_1
		= -sqrt(1+t^2) / (2t) + C_1`.
	</span>
	第二项积分的结果是 `1/2 ln (t + sqrt(1+t^2)) + C_2`.
	所以原式等于
	<span class="formula">
		`1/2 ln (x^2 + sqrt(1+x^4)) - sqrt(1+x^4) / (2x^2) + C`.
	</span>
</p>

<p class="example">
	`int sqrt((a+x)/(a-x)) dx`.
</p>

<p class="solution">
	常规思路是作代换 `t = sqrt((a+x)/(a-x))` 将被积函数有理化, 计算量较大.
	比较简单的做法是
	<span class="formula">
		原式 `= int (a+x)/sqrt(a^2-x^2) dx`
		`= a arcsin {:x/a:} - sqrt(a^2-x^2) + C`.
	</span>
</p>

<h2>分部积分 (Integrate by part, IBP)</h2>

<p class="example">
	`int x^2 "e"^(3x) dx`.
</p>

<p class="solution">
	连续使用分部积分: 不停地微分多项式项, 积分指数项, 而且隔项改变符号:
	<span class="formula">
		原式 `= (x^2) (1/3 "e"^(3x)) - (2x) (1/9"e"^(3x)) + (2)
		(1/27"e"^(3x)) + C`
		`= "e"^(3x)(1/3 x^2 - (2x)/9 + 2/27) + C`.
	</span>
</p>

<p class="example">
	`int x^n/(n!) "e"^x dx = "e"^x sum_(k=0)^n (-1)^(n-k) x^k/(k!) + C`.
</p>

<p class="solution">用分部积分及归纳法证明之.</p>

<p class="example">
	`int x cos x dx`.
</p>

<p class="solution">
	连续使用分部积分: 不停地微分多项式项, 积分三角项, 而且隔项改变符号:
	<span class="formula">
		原式 `= (x) (sin x) - (1)(-cos x) + C`
		`= x sin x + cos x + C`.
	</span>
</p>

<p class="example">`int x^2 sin^3 x dx`.</p>

<p class="solution">
	(繁琐) 原式等于
	<span class="formula">
		` int x^2 sin x dx - int x^2 sin x cos^2 x dx`
		`= - int x^2 "d" cos x + 1/3 int x^2 "d" cos^3 x`
		`= - x^2 cos x + 2 int x cos x dx
			+ 1/3 x^2 cos^3 x - 2/3 int x cos^3 x dx`
		`= - x^2 cos x + 2 int x cos x dx + 1/3 x^2 cos^3 x
			- 2/3 int x cos x dx + 2/3 int x cos x sin^2 x dx`
		`= - x^2 cos x + 4/3 x sin x + 4/3 cos x + 1/3 x^2 cos^3 x
			+ 2/9 int x "d" sin^3 x`
		`= - x^2 cos x + 4/3 x sin x + 4/3 cos x + 1/3 x^2 cos^3 x
			+ 2/9 x sin^3 x - 2/9 int sin^3 x dx`.
	</span>
	因为
	<span class="formula">
		`  int sin^3 x dx = int (cos^2 x - 1) "d" cos x`
		`= 1/3 cos^3 x - cos x + C`,
	</span>
	所以原式等于
	<span class="formula">
		`- x^2 cos x + 4/3 x sin x + 14/9 cos x + 1/3 x^2 cos^3 x
		 + 2/9 x sin^3 x - 2/27 cos^3 x + C`.
	</span>
</p>

<p class="solution">
	(先将三角函数做 Fourier 展开)
	<span class="formula">
		 原式 `= int x^2/4 (3 sin x - sin 3x) dx`
		 `= 3/4 (- x^2 cos x + 2x sin x + 2 cos x)`
		 `-1/4 (- x^2/3 cos 3x + (2x)/9 sin 3x + 2/27 cos 3x) + C`.
	</span>
</p>

<p class="example">
	`int x ln x dx`.
</p>

<p class="solution">
	连续使用分部积分, 但是需要小心地写出每一项:
	<span class="formula">
		原式 `= x^2/2 ln x - int x^2/2 "d" ln x`
		`= x^2/2 ln x - 1/2 int x dx`
		`= x^2/2 ln x - x^2/4 + C`.
	</span>
</p>

<p class="example">
	`int x arctan x dx`.
</p>

<p class="solution">
	连续使用分部积分, 但是需要小心地写出每一项:
	<span class="formula">
		原式 `= x^2/2 arctan x - int x^2/2 "d" arctan x`
		`= x^2/2 arctan x - 1/2 int (1+x^2-1)/(1+x^2) dx`
		`= x^2/2 arctan x - x/2 + 1/2 arctan x + C`.
	</span>
</p>

<p class="example">`I = int "e"^(ax) cos bx dx`.</p>

<p class="solution">
	分别对指数项和三角项使用分部积分然后相消:
	<span class="formula">
		` (a^2+b^2)I`
		`= a^2 int "e"^(ax) cos bx dx + b^2 int "e"^(ax) cos bx dx`
		`= a int cos bx "d" "e"^(ax) + b int "e"^(ax) "d" sin bx`
		`= a "e"^(ax) cos bx + ab int "e"^(ax) sin bx dx
			+ b "e"^(ax) sin bx - ab int "e"^(ax) sin bx dx`
		`= a "e"^(ax) cos bx + b "e"^(ax) sin bx + C_0`.
	</span>
	所以
	<span class="formula">
		`I = "e"^(ax)/(a^2+b^2) (a cos bx + b sin bx) + C`.
	</span>
</p>

<p class="solution">
	计算
	<span class="formula">
		`int "e"^((a+b"i")x) dx`
		`= "e"^((a+b"i")x)/(a+b"i") + C`
		`= (a-b"i")/(a^2+b^2) "e"^((a+b"i")x) + C`.
	</span>
	分别取实部虚部得到
	<span class="formula">
		`int "e"^(a x) cos b x dx`
		`= "e"^(a x)/(a^2+b^2) (a cos b x + b sin b x) + C`,<br/>
		`int "e"^(a x) sin b x dx`
		`= "e"^(a x)/(a^2+b^2) (a sin b x - b cos b x ) + C`.
	</span>
</p>

<p class="example" id="exp-int-sin-n-x">
	求 `I_n = int sin^n x dx`, `J_n = int cos^n x dx`
	的递推公式.
</p>

<p class="solution">
	`n in ZZ\\{0}` 时,
	<span class="formula">
		`I_n = int sin^n x dx`
		`= -int sin^(n-1) x "d"(cos x)`
		`= -sin^(n-1) x cos x + (n-1)int cos^2 x sin^(n-2) x dx`
		`= -sin^(n-1) x cos x + (n-1)int (1-sin^2 x) sin^(n-2) x dx`
		`= -sin^(n-1) x cos x + (n-1) (I_(n-2) - I_n)`.
	</span>
	于是
	<span class="formula">
		`I_n = (n-1)/n I_(n-2) -1/n sin^(n-1) x cos x`.
	</span>
	取 `n = -n` 得
	<span class="formula">
		`I_(-n-2) = n/(n+1) I_(-n) - (cos x)/((n+1) sin^(n+1) x)`.
	</span>
	类似可得
	<span class="formula">
		`J_n = (n-1)/n J_(n-2) + 1/n cos^(n-1) x sin x`,<br/>
		`J_(-n-2) = n/(n+1) J_(-n) + (sin x)/((n+1) cos^(n+1) x)`.
	</span>
	其中
	<span class="formula">
		`I_0 = J_0 = x + C`,<br/>
		`I_1 = - cos x + C`, `quad J_1 = sin x + C`,<br/>
		`I_(-1) = ln|csc x - cot x| + C`,
		`quad J_(-1) = ln|sec x + tan x| + C`,<br/>
		`I_(-2) = - cot x + C`, `quad J_(-2) = tan x + C`.
	</span>
</p>

<p class="example" id="exp-possion-integral">
	求 `I_n = int "e"^(-x^2) x^n dx` 的递推公式.
</p>

<p class="solution">
	<span class="formula">
		`I_1 = int "e"^(-x^2) x dx`
		`= 1/2 int "e"^(-x^2) "d"(x^2)`
		`= -1/2 "e"^(-x^2) + C`,
	</span>
	所以
	<span class="formula">
		`I_n = int x^(n-1) "d"(-1/2 "e"^(-x^2))`
		`= -1/2 "e"^(-x^2) x^(n-1) + (n-1)/2 int "e"^(-x^2) x^(n-2) dx`
		`= -1/2 "e"^(-x^2) x^(n-1) + (n-1)/2 I_(n-2)`.
	</span>
</p>


<h2>有理函数积分</h2>

<p class="example">`I = int x/(x+1)^3 dx`.</p>

<p class="solution">
	常规做法是令 `t = x+1`, 也可以直接将 `x+1` 视为整体:
	<span class="formula">
		`I = int (x+1)/(x+1)^3 dx - int (dx)/(x+1)^3`
		`= -1/(x+1) + 1/(2(x+1)^2) + C`.
	</span>
</p>

<ol class="example">
	<li>`I_n = int dx / (x^2 + a)^n`;</li>
	<li>`int dx / (ax^2 + b)^2`.</li>
</ol>

<ol class="solution">
	<li>
		<span class="formula">
			`I_(n-1) =	int dx / (x^2 + a)^(n-1)`
			`= x/(x^2+a)^(n-1) - int x "d"(x^2+a)^(1-n)`
			`= x/(x^2+a)^(n-1) + 2(n-1) int (x^2+a-a)/(x^2+a)^n dx`
			`= x/(x^2+a)^(n-1) + (2n-2)( I_(n-1) - a I_n )`.
		</span>
		故 `(2n-2)aI_n = x/(x^2+a)^(n-1) + (2n-3)I_(n-1)`.
	</li>
	<li>在上题中取 `n = 2` 得
		<span class="formula">
			` (2b)/a int dx / (x^2 + b/a)^2
			= x/(x^2 + b/a) + int dx / (x^2 + b/a)`.
		</span>
		于是
		<span class="formula">
			` 2b int dx /(ax^2 + b)^2
			= x/(ax^2 + b) + int dx / (ax^2 + b)`.
		</span>
	</li>
</ol>

<p class="example">
  求 `int dx/(1+x+x^2)^2`.
</p>

<p class="solution">
  记 `I_n = int x^n/(1+x+x^2)^2 dx`, 于是
  <span class="formula">
    `I_0 + I_1 + I_2 = int dx/(1+x+x^2) := J`,<br/>
    `J = x/cdots + int (x(2x+1))/cdots^2 dx`
    `= x/cdots + I_1 + 2 I_2`,<br/>
    `2 I_1 + I_0 = int (2x+1)/cdots^2 dx := K`.
  </span>
  解得 `3 I_0 = 2J - K + (2x)/cdots`, 其中
  <span class="formula">
    `J = int dx/((x+1/2)^2 + 3/4)`
    `= 2/sqrt 3 arctan{:(2x+1)/sqrt 3:}`,
    `quad K = -1/cdots`.
  </span>
</p>

<p class="example">
    求不定积分 `int dx/(1+x^n)`, 其中 `n = 3, 4, 5, 6`.
</p>

<ol class="solution">
    <li>`n = 3`, 原式等于
        <span class="formula">
            `1/3 int(1/(1+x) + (2-x)/(1-x+x^2)) dx`
            `= 1/3 int dx/(1+x) -1/6 int (2x-1)/(x^2-x+1) dx + 1/2 int
            dx/(x^2-x+1)`
            `= 1/6 ln |1+x|^2/|x^2-x+1| + 1/(sqrt3)
            arctan{:(2x-1)/(sqrt3):} + C`.
        </span>
    </li>
    <li>`n = 4`, 原式等于
        <span class="formula">
            `1/2 int (1+x^2)/(1+x^4) dx + 1/2 int (1-x^2)/(1+x^4) dx`
            `= 1/2 int (1+1/x^2)/(x^2+1/x^2) dx
            - 1/2 int (1-1/x^2)/(x^2+1/x^2) dx`
            `= 1/2 int ("d"(x-1/x))/((x-1/x)^2+2) dx
            - 1/2 int ("d"(x+1/x))/((x+1/x)^2-2) dx`
            `= 1/(2sqrt2) arctan{:(x-1/x)/2:}
            -1/(4sqrt2) ln|(x+1/x-sqrt2)/(x+1/x+sqrt2)| + C`.
        </span>
    </li>
    <li>`n = 6`, 原式等于
        <span class="formula">
            `1/3 int dx/(x^2+1) + 1/3 (2-x^2)/(x^4-x^2+1) dx`
            `= 1/3 arctan x
            + 1/3 * 1/2 int (1+x^2)/(x^4-x^2+1) dx
            + 1/3 * 3/2 int (1-x^2)/(x^4-x^2+1) dx`
            `= 1/3 arctan x + 1/6 arctan(x-1/x) - 1/(4sqrt3)
            ln |(x+1/x-sqrt3)/(x+1/x+sqrt3)| + C`,
        </span>
        其中
        <span class="formula">
            `int (1+x^2)/(x^4-x^2+1) dx`
            `= int ("d"(x-1/x))/((x-1/x)^2+1) dx`
            `= arctan (x-1/x)`,<br/>
            `int (1-x^2)/(x^4-x^2+1) dx`
            `= -int ("d"(x+1/x))/((x+1/x)^2-3)`
            `= -1/(2sqrt3) ln |(x+1/x-sqrt3)/(x+1/x+sqrt3)| + C`.
        </span>
    </li>
    <li>`n = 5`, 用软件得到答案
      <span class="formula">
        `1/5 ln(1+x)`
        `+ (sqrt5-1)/(sqrt5 sqrt(10-2sqrt5)) arctan{:(4x-1-sqrt5)/sqrt(10-2sqrt5):}`
        `+ (sqrt5+1)/(sqrt5 sqrt(10+2sqrt5)) arctan{:(4x-1+sqrt5)/sqrt(10+2sqrt5):}`
        `- (3+sqrt5)/(10(1+sqrt5)) ln(2x^2+2-(1+sqrt5)x)`
        `- (3-sqrt5)/(10(1-sqrt5)) ln(2x^2+2-(1-sqrt5)x) + C`.
      </span>
      什么, 你想手算? 我是不想🥀.
    </li>
</ol>

<h3>部分分式分解</h3>

<p class="example">
  分解 `(5x-4)/((x-2)(x+1)) = A/(x-2) + B/(x+1)`.
</p>

<p class="solution">
  计算分子:
  <span class="formula">
    `5x-4 = (x+1)A + (x-2)B`.
  </span>
  常规做法是比较上式两端各次项系数, 得出相应的线性代数方程组.
  现在使用零点代入法. 分别令 `x = -1, 2`, 代入上式:
  <span class="formula">
    `-9 = -3B rArr B = 3`, `quad`
    `6 = 3A rArr A = 2`.
  </span>
  事实上我们得到
  <span class="formula">
    `A = {:(5x-4)/(x+1)|_(x=2) = 2`,
    `quad B = {:(5x-4)/(x-2)|_(x=-1) = 3`.
  </span>
</p>

<p>	一般地, 我们有如下定理:</p>

<p class="theorem" id="the-rat-decom">
  设 `p(x), q(x)` 为多项式. 若 `a` 是 `q(x)` 的 `r` 重根, 设
  `q(x) = (x-a)^r q_1(x)`, 其中 `q_1(a) != 0`.
  容易知道函数 `f(x) = p(x) // q_1(x)` 在 `x = a` 处全纯,
  将它在这一点 Taylor 展开得
  <span class="formula">
    `f(x) = sum_(n ge 0) A_n (x-a)^n`,
    `quad A_n = (f^((n))(a))/(n!)`.
  </span>
  于是有理分式 `p(x) // q(x)` 具有分解式
  <span class="formula">
    `(p(x))/(q(x)) = (f(x))/(x-a)^r`
    `= sum_(0 le n lt r) (f^((n))(a))/(n!)
    (x-a)^(n-r) + **/(q_1(x))`,
  </span>
  特别当 `r = 1` 时有
  <span class="formula">
    `(p(x))/(q(x)) = (f(a)) / (x-a) + **/(q_1(x))`.
  </span>
  `r = 2` 时有
  <span class="formula">
    `(p(x))/(q(x)) = (f'(a)) / (x-a) + (f(a))/(x-a)^2 + **/(q_1(x))`.
  </span>
  如果极点的阶数在 2 阶以上 (`r gt 2`)，建议使用幂级数除法进行 Taylor
  展开，避免计算复杂的高阶导数.
</p>

<p class="example">
  分解 `(2x^2)/(x^2-1)^2 = A/(x+1) + B/(x+1)^2 + C/(x-1) + D/(x-1)^2`.
</p>

<p class="solution">
  先在 `x=-1` 处展开,
  令 `f(x) = (2x^2)/(x-1)^2`, 于是
  <span class="formula">
    `A = f'(-1)`
    `= {:(4x(x-1)^2 - 4(x-1)x^2)/(x-1)^4|_(x=-1) = -1/2`,
    `quad B = f(-1) = 1/2`.
  </span>
  再考虑 `x=1` 处, 令 `g(x) = (2x^2)/(x+1)^2`, 有
  <span class="formula">
    `C = g'(1)`
    `= {:(4x(x+1)^2 - 4(x+1)x^2)/(x+1)^4|_(x=1) = 1/2`,
    `quad D = g(1) = 1/2`.
  </span>
</p>

<p class="example">
	分解 `16/((x+3)^3(x-1)) = A_0/(x+3)^3 + A_1/(x+3)^2 + A_2 /(x+3)
	+ B/(x-1)`.
</p>

<ol class="solution">
	易知 `B = {:16/(x+3)^3|_(x=1) = 1/4`.
	为了求出 `A_0, A_1, A_2`, 只需计算函数 `f(x) = 16//(x-1)` 在 `x = -3`
	处的 Taylor 展开. 下面用三种方法来求.
	<li>幂级数除法.
		作变换 `y = x+3`, 问题化为求 `16//(y-4)` 在原点的 Taylor 展开.
		列表作除法, 表格第一列是除式的 `-4 + y` 的各次项系数,
		第一行是商 `-4 - y - y^2/4` 的各次项系数.
		表中每一单元的数是第一列与第一行中相应数字的乘积.
		<table>
			<tr>
				<td></td> <td>-4</td> <td>-1</td> <td>-1/4</td>
			</tr>
			<tr>
				<td>-4</td> <td>16</td> <td>4</td> <td>1</td>
			</tr>
			<tr>
				<td>1</td> <td>-4</td> <td>-1</td> <td></td>
			</tr>
		</table>
		作除法时, 应当保证每一对角线上数字之和等于被除式 `16
		+ 0 y + 0 y^2` 的相应系数:
		<span class="formula">
			`16 = 16`, `quad 4 + (-4) = 0`, `quad 1 + (-1) = 0`.
		</span>
		因此, `A_0 = -4, A_1 = -1, A_2 = -1/4`.
	</li>
	<li>直接求 `n` 阶导数:
		<span class="formula">
			`(f^((n))(x))/(n!) = -16/(1-x)^(n+1)`.
		</span>
		于是
		<span class="formula">
			`A_n = (f^((n))(-3))/(n!) = -16/4^(n+1) = -4^(1-n)`,
			`quad n = 0, 1, 2`.
		</span>
	</li>
	<li>利用公式 `(1-t)^-1 = sum_(n ge 0) t^n`,
		<span class="formula">
			`f(x) = 16/(x-1)`
			`= 16/(x+3-4)`
			`= (-4)/(1-(x+3)/4)`
			`= -4 sum_(n ge 0) ((x+3)/4)^n`.
		</span>
		于是
		<span class="formula">
			`A_n = -4/4^n = -4^(1-n)`, `quad n = 0, 1, 2`.
		</span>
	</li>
</ol>

<p class="example">
    `1/(1+-x^n)` 在 `CC` 上的的有理分式分解为
    <span class="formula">
        `1/(1+-x^n) = -1/n sum_r r/(x-r)`,
    </span>
    其中 `r` 取遍分母的 `n` 个根.
    因此 `int dx/(1+-x^n) = -1/n sum_r r ln (x-r) + C`.
</p>

<p class="proof">
    只证 `1//(1+x^n)` 的情形.
    记 `omega = "e"^(pi"i"//n)`, 则 `omega^n = -1`,
    且 `x^n+1` 的 `n` 个根为
    <span class="formula">
        `r_k = omega^(2k+1)`, `quad k = 0, 1, cdots, n-1`.
    </span>
    由<a class="ref" href="#the-rat-decom"></a>,
    <span class="formula">
        `1/(1+x^n) = sum_(0 le k lt n) A_k/(x-r_k)`,
    </span>
    其中
    <span class="formula">
        `A_k = prod_(0 le j lt n; j != k) (r_k-r_j)^-1`
        `= prod (omega^(2k+1) - omega^(2j+1))^-1`
        `= omega^((2k+1) (1-n)) prod (1-omega^(2(j-k)))^-1`
        `= -omega^(2k+1) prod_(0 lt j lt n) (1-omega^(2j))^-1`
        `= -r_k/n`.
    </span>
    最后一步利用了恒等式 `prod_s (1-s) = n`, 其中 `s` 取遍 `x^n-1` 除了
    1 以外的所有根.
</p>

<p class="theorem">
  <b>奥斯特洛格拉德斯基定理 (奥氏定理)</b>
  [来自 <a href="https://zhuanlan.zhihu.com/p/238073746">猎户座の数学</a>]
  设 `p(x)//q(x)` 为实系数有理真分式, 则
  <span class="formula">
    `int (p(x))/(q(x)) dx`
    `= (p_1(x))/(q_1(x)) + int (p_2(x))/(q_2(x)) dx`,
  </span>
  其中 `q_1 = gcd(q, q')`, `q = q_1 q_2`. 因此 `q_2` 的因式均为一重. 例如
  `x-a` 是 `q` 的 `m` 重因式, 则它在 `q_1`
  的重数为 `m-1`, 在 `q_2` 的重数为 `1`.
  等号右边第一项称为积分 `int p(x)//q(x) dx` 的<b>有理部分</b>,
  第二项仍为有理真分式的积分, 它是超越函数, 称为<b>超越部分</b>.
</p>

<p class="proof">
  考虑 `p(x)//q(x)` 的部分分式分解:
  <span class="formula">
    `(p(x))/(q(x))`
    `= sum_j sum_k a_(j k)/(x-x_j)^k`
    `+ sum_j sum_k (b_(j k) x + c_(j k))/(x^2+p_(j k) x + q_(j k))^k`.
  </span>
  如果分母均为一重因式, 则
  <span class="formula">
    `int dx/(x-x_j) = ln|x-x_j| + C`,<br>
    `int (b x + c)/(x^2 + p x + q) dx`
    `= b/2 ln (x^2 + p x + q) + (2c-p b)/sqrt(4q-p^2) arctan{:(2x+p)/sqrt(4q-p^2):} + C`
  </span>
  均为超越函数.
  反之若分母的重数 `k gt 1`, 则
  <span class="formula">
    `int dx/(x-x_j)^k = 1/(1-k) 1/(x-x_j)^(k-1) + C`,<br>
    `int (b x + c)/(x^2 + p x + q)^k dx`
    `==^(u=x+p//2) b int (u "d"u)/(u^2 + a^2)^k`
    `+ (c - p b//2) int ("d"u)/(u^2+a^2)^k`.
    `= b/(2(1-k)) 1/(u^2+a^2)^(k-1)`
    `+ (c - p b//2) I_k`.
  </span>
  其中
  <span class="formula">
    `I_k = int ("d"u)/(u^2+a^2)^k`,<br>
    `I_(k+1) = 1/(2k a^2) u/(u^2+a^2)^k + (2k-1)/(2k a) I_k`.
  </span>
  于是 `I_k = R_1(x) + A_k I_1`, 其中 `R_1(x)` 为有理函数, `A_k` 是常数,
  `I_1 = int ("d"u)/(u^2+a^2)` 是超越函数.
  综上知 `int p(x)//q(x) dx` 的超越部分, 分母的重数均为 1.
  而且, 有理部分的分母, 其重数比积分前降低了一次 (从 `k` 次变成 `k-1` 次).
  将有理部分和超越部分分别通分, 可知奥氏公式成立, 且有 `q = q_1 q_2`.
</p>

<p class="remark">
  由于 `q_1 = gcd(q, q')`, 可记 `q' = q_1 h`.
  对奥氏公式右边的有理部分求导得
  <span class="formula">
    `"d"/dx p_1/q_1`
    `= "d"/dx (p_1 q_2)/q`
    `= ((p_1 q_2)' q - q' p_1 q_2)/q^2`
    `= ((p_1 q_2)' - h p_1 q_2)/q`.
  </span>
  于是分母为 `q`, 而不是比 `q` 次数高的多项式, 和积分前的函数 `p//q` 相符.
</p>

<p class="example">
  求 `int (x dx)/((x-1)^2(x+1)^3)`
</p>

<p class="solution">
  待定系数
  <span class="formula">
    `x/((x-1)^2(x+1)^3) = ((A x^2+B x+C)/((x-1)(x+1)^2))' + (D x+E)/((x-1)(x+1))`,
  </span>
  等号右边的两项中, 第一项已经在积分号外, 第二项的积分相比原式已经大大简化.
</p>

<h3>三角/指数函数的有理式</h3>

<p class="example">
	`int R("e"^x) dx`, `R` 为有理函数.
</p>

<p class="solution">
	令 `t = "e"^x`, 则 `x = ln t`, `dx = dt/t`.
	<span class="formula">
		原式 `= int (R(t))/t dt`.
	</span>
</p>

<p class="example">
	`int R(tan x) dx`, `R` 为有理函数.
</p>

<p class="solution">
	令 `t = tan x`, 则 `x = arctan t`, `dx = dt/(1+t^2)`.
	<span class="formula">
		原式 `= int (R(t))/(1+t^2) dt`.
	</span>
</p>

<p class="example">
	`int P(sin x, cos x) dx`, `P` 为多项式.
</p>

<p class="solution">
	参看 <a href="../misc/2.html" target="_blank">Chebyshev 多项式的反向表示</a>.
	将 `P(sin x, cos x)` 做 Fourier 展开, 再积分.
	通项 `sin^m x cos^n x` 先利用 `sin^k x cos^k x = ((sin 2x)/2)^k`
	将其展开, 再由积化和差公式
	<span class="formula">
		`2 sin n x cos m x = sin(n+m)x + sin(n-m)x`,<br/>
		`2 cos n x cos m x = cos(n-m)x + cos(n+m)x`,<br/>
		`2 sin n x sin m x = cos(n-m)x - cos(n+m)x`.
	</span>
	把两个展式相乘. 例如
  <span class="formula">
    `sin^4 x cos^7 x`
    `= ((sin 2x)/2)^4 cos^3 x`
    `= 1/128 (3 - 4 cos 4x + cos 8x) 1/4 (3 cos x + cos 3x)`
    `= 1/512 (9 cos x + 3 cos 3x - 6(cos 3x + cos 5x):}`
    `- 2(cos x + cos 7x) + 3/2(cos 7x + cos 9x)`
    `+ {:1/2(cos 5x + cos 11x))`
    `= 1/1024 (14 cos x -6 cos 3x -11 cos 5x:}`
    `- {:cos 7x + 3 cos 9x + cos 11x)`.
  </span>
</p>

<p class="example">
	`int R(sin x, cos x) dx`, `R` 为有理函数.
</p>

<p class="solution">
	(万能代换) 令 `t = tan{:x/2:}`, 则 `x = 2 arctan t`, `dx = (2
	dt)/(1+t^2)`, `sin x = (2t)/(1+t^2)`, `tan x = (2t)/(1-t^2)`,
	`cos x = (sin x)/(tan x) = (1-t^2)/(1+t^2)`.
</p>

<h2>不具有初等原函数的函数</h2>

<ul>
	<li>(见 Poission 积分) `"e"^(-x^2)`;</li>
	<li>(见 Dirichlet 积分) `(sin x)/x`;</li>
	<li>`"e"^x/x`, `1/(ln x)`, `1/sqrt(1+x^4)`;</li>
	<li>椭圆函数 `sqrt(1-a^2 cos^2 x)`, `0 lt a lt 1`.</li>
</ul>

<script src="../../js/note.js?type=math"></script>
</body>
</html>

